Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture

نویسندگان

  • Kenji Watanabe
  • Yamin Li
چکیده

The Java programming language has been widely used to develop dynamic content in Web pages. The Java Virtual Machine (JVM) executes Java bytecode. For efficient transmission over the Internet, the Java bytecode is a stack oriented architecture: instructions need not contain source and destination specifiers in their bytecodes. The Java bytecodes may be executed on various platforms by interpretation or just in time (JIT) compiling to the native primitives of the particular machine. However, with a few exceptions, Java has not been used for developing network computing applications that demand high performance. In this paper, we investigate the potential parallelism of Java bytecodes and describe a Java processor architecture which aims to exploit instruction level parallelism (ILP). A Java processor can execute bytecodes directly so that we can expect higher performance than from interpretation or JIT compilation. In contrast to other Java processors, our processor exploits ILP: it can execute multiple computational instructions in parallel. Because the Java Virtual Machine stack based, push and pop instructions are frequent. Usually, the top of the stack will become the bottleneck. We investigate the possibilities of parallel access to the stack and the execution of push/pop with zero time. We have developed an architectural simulator which evaluates the performance of various configurations. The simulation results show that our Java ILP processor could achieve an average 2.96 EIPC (effective instructions per cycle) with a 16-instruction scheduling window and 3.36 EIPC with a 32-instruction window.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Instruction Cache Architecture for Parallel Execution of Java Threads

Designing a Java processor supporting horizontal multithreading has been becoming more attractive as network computing gains importance. Different from the traditional superscalar processors that issue multiple instructions from a single instruction stream to exploit the instruction level parallelism (ILP), the horizontal multithreading Java processors issue multiple instructions (bytecodes) fr...

متن کامل

JAViR – Exploiting Instruction Level Parallelism for JAVA Machine by Using Virtual Registers

Java Virtual Machine architecture is a stack based architecture. Because most Java instructions can operate only on the top of the stack, it is difficult to exploit instruction level parallelism (ILP). In this paper, we introduce a new kind of storage, named virtual register (VR), working together with the stack, to provide a simultaneous access mechanism for a wide-issue high-performance JAViR...

متن کامل

Exploiting Java Instruction/Thread Level Parallelism with Horizontal Multithreading

Java bytecodes can be executed with the following three methods: a Java interpretor running on a particular machine interprets bytecodes; a Just-In-Time (JIT) compiler translates bytecodes to the native primitives of the particular machine and the machine executes the translated codes; and a Java processor executes bytecodes directly. The first two methods require no special hardware support fo...

متن کامل

A predecoding technique for ILP exploitation in Java processors

Java processors have been introduced to offer hardware acceleration for Java applications. They execute Java bytecodes directly in hardware. However, the stack nature of the Java virtual machine instruction set imposes a limitation on the achievable execution performance. In order to exploit instruction level parallelism and allow out of order execution, we must remove the stack completely. Thi...

متن کامل

BLP: Applying ILP Techniques to Bytecode Execution

The popularity of Java has resulted in a flurry of engineering and research activity to improve performance of Java Virtual Machine (JVM) implementations. This paper explores the concept of bytecode-level parallelism (BLP): dataand controlindependent bytecodes that can be executed concurrently, just as conventional machine instructions are executed concurrently to exploit instruction-level para...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999